﻿package org.utils 
{ 
   
    import flash.external.ExternalInterface;
    import flash.net.URLRequest;
    import flash.net.navigateToURL; 
	/**
	 * 此类主要用在swf在网页中调试用的，swf可直接调用本类方法获取网页路径和弹出警告窗口
	 * @author Administrator
	 * 
	 */     
    public class JSCommand 
    { 

    	public function JSCommand():void{}
		/**
		 * 获取网页路径 
		 * @return String
		 * 
		 */        
        public static function getPageUrl():String 
        { 
            var pageurl:String = ExternalInterface.call("eval", "window.location.href"); 
            if(pageurl == null) 
                pageurl = "none";
            return pageurl; 
        } 
		
		/**
		 * 弹出窗口 
		 * @param msg 消息数据
		 * 
		 */        
        public static function explorerAlert(msg:String):void 
        { 
            navigateToURL(new URLRequest("javascript:alert('"+msg+"')"), "_self"); 
        } 
		
		/**
		 * 获取网页编码
		 * @return String
		 * 
		 */        
        public static function getpageEncoding():String 
        { 
            var pageencoding:String = ExternalInterface.call("eval", "document.charset"); 
            if(pageencoding == null) 
                pageencoding = ExternalInterface.call("eval", "document.characterSet"); 
            
            if(pageencoding == null) 
                pageencoding = "NONE";
			
            return pageencoding.toUpperCase(); 
        } 
		/**
		 * 获取浏览器类型 
		 * @return String
		 * 
		 */        
        public static function getBrowserType():String 
        { 
            var browsertype:String = ExternalInterface.call("eval", "navigator.userAgent"); 
            return (browsertype ? browsertype:"NONE"); 
        } 
        
		/**
		 * 直接调用网页中定义的javascript函数 
		 * @param code
		 * @return 
		 * 
		 */		
        public static function eval(code:String):void
        { 
            ExternalInterface.call("eval", code); 
        } 
		
		/**
		 * 定义网页中javascript函数调用接口函数 
		 * @param funName 供javascript调用接口函数字符串表现形式
		 * @param closure 接口函数映射函数
		 * @return 
		 * 
		 */		
		public static function addCall(funName:String,closure:Function):void{
		
			ExternalInterface.addCallback(funName,closure)
			
		}
		
		/**
		 * 禁用网页滚动条 
		 * @return 
		 * 
		 */		
		public static function diswebScroll():void{  
		    var offwebScroll:XML =    
				<script>    
				<![CDATA[    
					// 参数为地图物件的object id    
					function (objId) {    
						// 取得地图对象的参考    
						var obj = document.getElementById(objId);    
							
						// 滚轮事件的处理函式    
						function preventDefault(e) {    
							// 下面的程序代码让滚轴事件发生在地图对象时，就取消预设的页面卷动行动，    
							// 可以在ff，ie上执行    
							if (window.event) {    
								window.event.returnValue = false;    
							}    
							if (e && e.preventDefault) {    
								e.preventDefault();    
							}    
						}    
							
						// 挂上事件处理，这里的作法可在大多数的主要浏览器上执行，包括ff，ie    
						if (obj.addEventListener) {    
							obj.addEventListener('DOMMouseScroll', preventDefault, true);    
						} else if (obj.attachEvent) {    
							obj.attachEvent('onmousewheel', preventDefault, true);    
						} else {    
							obj['onmousewheel'] = preventDefault;    
						}    
					}    
				]]>    
				</script>;
			ExternalInterface.call(offwebScroll, ExternalInterface.objectID);
		}
    } 
} 


